// 关于用户信息的仓库文件
import { defineStore } from "pinia";
import { ref } from "vue";
import { login_api,getInfo_api } from "@/api/apis.ts";
import local from "@/utils/local.ts";
import { useRouter } from "vue-router";

export let useUser = defineStore("useUser",()=>{
    // 实例化路由
    let $router = useRouter();
    // 角色  仓库初始化获取本地的数据
    let $role = ref(local.get("role"));
    // token  仓库初始化获取本地的数据
    let $token = ref(local.get("tk"));
    // info  仓库中的用户数据  断言
    let $info = ref( local.get("info")? JSON.parse(local.get("info")!): "");
    

    // 定义一个函数 用来发登录请求
    let $login_store = async (data:Login)=>{
        let res= await login_api(data);
        let {code, role, token} = res.data;
        if( code == 0 ){
            // 成功 存本地 存仓库
            $role.value = role;
            $token.value = token;
            // 本地
            local.set("role", role);
            local.set("tk", token);
            // 跳转页面
            $router.push("/home/index")
        }
    }
    // 定义一个函数，用来获取用户信息
    let $getInfo_store = async ()=>{
        let res = await getInfo_api()
        // console.log(res);
        $info.value = res.data;  // 把数据赋值给仓库
        local.set("info", JSON.stringify(res.data));  // 存本地
    }

    return {
        $role,
        $token,
        $login_store,
        $getInfo_store,
        $info
    }

});

